package 笔试.VIVO;

import java.util.Arrays;

public class 分析内存 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param memoryUsage int整型一维数组 数组 memoryUsage，其中 memoryUsage[i] 表示应用在第 i 秒的内存使用量（以MB为单位）
     * @param k           int整型 整数k
     * @return int整型一维数组
     */
    public int[] findFluctuations(int[] memoryUsage, int k) {
        int len = memoryUsage.length;
        int reslen = len - k + 1;
        int[] ans = new int[reslen];
        for (int i = 0; i < reslen; i++) {
            int left = i;
            int right = left + k - 1;
            int min = Integer.MAX_VALUE;
            int max = Integer.MIN_VALUE;
            while (left <= right) {
                min = Math.min(min, memoryUsage[left]);
                max = Math.max(max, memoryUsage[left]);
                left++;
            }
            ans[i] = max - min;
        }
        return ans;
    }

    public static void main(String[] args) {
        分析内存 solution = new 分析内存();
        // [120, 150, 110, 180, 130, 160, 140, 170],3
        int[] memoryUsage = {120, 150, 110, 180, 130, 160, 140, 170};
        int k = 3;
        System.out.println(Arrays.toString(solution.findFluctuations(memoryUsage, k)));
    }
}